package com.ruoyi.manager.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.ruoyi.manager.domain.TbeduExerciseitem;
import com.ruoyi.manager.domain.TbeduStudentinfo;
import com.ruoyi.manager.mapper.TbeduExerciseitemMapper;
import com.ruoyi.manager.mapper.TbeduStudentinfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.manager.mapper.TbeduExerciseMapper;
import com.ruoyi.manager.domain.TbeduExercise;
import com.ruoyi.manager.service.ITbeduExerciseService;
import com.ruoyi.common.core.text.Convert;

/**
 * 作业发布Service业务层处理
 * 
 * @author superjean
 * @date 2021-08-29
 */
@Service
public class TbeduExerciseServiceImpl implements ITbeduExerciseService 
{
    @Autowired
    private TbeduExerciseMapper tbeduExerciseMapper;
    @Autowired
    private TbeduStudentinfoMapper tbeduStudentinfoMapper;
    @Autowired
    private TbeduExerciseitemMapper tbeduExerciseitemMapper;

    /**
     * 查询作业发布
     * 
     * @param fTaskid 作业发布主键
     * @return 作业发布
     */
    @Override
    public TbeduExercise selectTbeduExerciseByFTaskid(Long fTaskid)
    {
        return tbeduExerciseMapper.selectTbeduExerciseByFTaskid(fTaskid);
    }

    /**
     * 查询作业发布列表
     * 
     * @param tbeduExercise 作业发布
     * @return 作业发布
     */
    @Override
    public List<TbeduExercise> selectTbeduExerciseList(TbeduExercise tbeduExercise)
    {
        return tbeduExerciseMapper.selectTbeduExerciseList(tbeduExercise);
    }

    /**
     * 新增作业发布
     * 
     * @param tbeduExercise 作业发布
     * @return 结果
     */
    @Override
    public int insertTbeduExercise(TbeduExercise tbeduExercise)
    {
        //发布一次作业任务
        int result = tbeduExerciseMapper.insertTbeduExercise(tbeduExercise);
        //生成该班级的作业任务明细
        TbeduStudentinfo tbeduStudentinfo = new TbeduStudentinfo();
        tbeduStudentinfo.setfClassname(tbeduExercise.getfClassname());
        List<TbeduStudentinfo> studentinfoList = tbeduStudentinfoMapper.selectTbeduStudentinfoList(tbeduStudentinfo);
        List<TbeduExerciseitem> list = new ArrayList<>();
        if (studentinfoList != null && studentinfoList.size() > 1) {
            for (TbeduStudentinfo studentinfo : studentinfoList) {
                TbeduExerciseitem tbeduExerciseitem = new TbeduExerciseitem();
                tbeduExerciseitem.setfUserid(studentinfo.getfId());
                tbeduExerciseitem.setfTaskid(tbeduExercise.getfTaskid());
                list.add(tbeduExerciseitem);
            }
        }
        for (TbeduExerciseitem tbeduExerciseitem : list) {
            tbeduExerciseitemMapper.insertTbeduExerciseitem(tbeduExerciseitem);
        }
        return result;
    }

    /**
     * 修改作业发布
     * 
     * @param tbeduExercise 作业发布
     * @return 结果
     */
    @Override
    public int updateTbeduExercise(TbeduExercise tbeduExercise)
    {
        return tbeduExerciseMapper.updateTbeduExercise(tbeduExercise);
    }

    /**
     * 批量删除作业发布
     * 
     * @param fTaskids 需要删除的作业发布主键
     * @return 结果
     */
    @Override
    public int deleteTbeduExerciseByFTaskids(String fTaskids)
    {
        return tbeduExerciseMapper.deleteTbeduExerciseByFTaskids(Convert.toStrArray(fTaskids));
    }

    /**
     * 删除作业发布信息
     * 
     * @param fTaskid 作业发布主键
     * @return 结果
     */
    @Override
    public int deleteTbeduExerciseByFTaskid(Long fTaskid)
    {
        return tbeduExerciseMapper.deleteTbeduExerciseByFTaskid(fTaskid);
    }
}
